import arrObj from "./index.js";
let reducer = (
  state = {
    ...arrObj.state,
  },
  action
) => {
  let newState = JSON.parse(JSON.stringify(state));
  // switch (action.type) {
  //   case arrObj.arrPush:
  //     arrObj.action[arrObj.arrPush](newState, action);
  //     break;
  //   default:
  //     break;
  // }
  /**
   * 优化：
   * 思路1、循环判断 action.type 和 action.actionNames 中是否一致
   * 思路2、直接判断模块中的action中是否有action[action.type]这个方法，有就调用
   *      （优点：1、不用循环判断；2、模块中也不用再多一个 actionNames 属性；3、模块中也不用再循环添加 actionNames）
   */
  if (arrObj.action[action.type]) {
    arrObj.action[action.type](newState, action);
  }
  return newState;
};
export default reducer;
